home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 August: Technology Seed / ADC Seed CD - August 1999.toast / Carbon SDK 1.0d10c3 / Sample Code / AppearanceSample / LayoutPane.cp < prev    next >
Encoding:
Text File  |  1999-05-01  |  2.3 KB  |  102 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        LayoutPane.cp
  3.  
  4.     Contains:    Class to drive our layout pane, demonstrating group boxes.
  5.  
  6.     Version:    Appearance 1.0 SDK
  7.  
  8.     Copyright:    © 1997 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     File Ownership:
  11.  
  12.         DRI:                Edward Voas
  13.  
  14.         Other Contact:        7 of 9, Borg Collective
  15.  
  16.         Technology:            OS Technologies Group
  17.  
  18.     Writers:
  19.  
  20.         (edv)    Ed Voas
  21.  
  22.     Change History (most recent first):
  23.  
  24.          <2>    10/28/97    edv        Use RadioGroup control!
  25.          <1>     9/11/97    edv        First checked in.
  26. */
  27.  
  28. #include "AppearanceSamplePrefix.h"
  29.  
  30. #include <Appearance.h>
  31.  
  32. #include "LayoutPane.h"
  33. #include "AppearanceHelpers.h"
  34. #include "UDialogUtils.h"
  35.  
  36. enum
  37. {
  38.     kPrimaryGroup        = 1,
  39.     kUserPane            = 2,
  40.     kSecondaryGroup        = 3,
  41.     kSeparator            = 4,
  42.     kRadioGroup            = 5,
  43.     kLevel1Radio        = 6,
  44.     kLevel2Radio        = 7,
  45.     kLevel3Radio        = 8,
  46.     kUseMilliCheck        = 9,
  47.     kFullCheck            = 10
  48. };
  49.  
  50. LayoutPane::LayoutPane( DialogPtr dialog, SInt16 items ) : MegaPane( dialog, items )
  51. {
  52.     ControlHandle    control;
  53.     
  54.     AppendDialogItemList( dialog, 6005, overlayDITL );
  55.     
  56.     UDialogUtils::SetItemValue( dialog, fOrigItems + kPrimaryGroup, 1 );
  57.     
  58.     GetDialogItemAsControl( dialog, fOrigItems + kLevel1Radio, &control );
  59.     SetControlMaximum( control, 2 );
  60.     GetDialogItemAsControl( dialog, fOrigItems + kLevel2Radio, &control );
  61.     SetControlMaximum( control, 2 );
  62.     GetDialogItemAsControl( dialog, fOrigItems + kLevel3Radio, &control );
  63.     SetControlMaximum( control, 2 );
  64.     UDialogUtils::SetItemValue( dialog, fOrigItems + kRadioGroup, 2 );
  65.     UDialogUtils::SetItemValue( dialog, fOrigItems + kLevel3Radio, 1 );
  66.     UDialogUtils::SetItemValue( dialog, fOrigItems + kLevel1Radio, 2 );
  67.     UDialogUtils::SetItemValue( dialog, fOrigItems + kLevel1Radio, 0 );
  68.     UDialogUtils::SetItemValue( dialog, fOrigItems + kLevel2Radio, 1 );
  69. }
  70.  
  71. LayoutPane::~LayoutPane()
  72. {
  73.     ShortenDITL( fDialog, CountDITL( fDialog ) - fOrigItems );
  74. }
  75.  
  76. void
  77. LayoutPane::ItemHit( SInt16 item )
  78. {
  79.     SInt16            localItem;
  80.     ControlHandle    control;
  81.     
  82.     localItem = item - fOrigItems;
  83.     
  84.     switch( localItem )
  85.     {
  86.         case kPrimaryGroup:
  87.             UDialogUtils::ToggleCheckBox( fDialog, item );
  88.             GetDialogItemAsControl( fDialog, fOrigItems + kUserPane, &control );
  89.             if ( UDialogUtils::GetItemValue( fDialog, item ) == 1 )
  90.                 ActivateControl( control );
  91.             else
  92.                 DeactivateControl( control );
  93.             break;
  94.         
  95.         case kUseMilliCheck:
  96.         case kFullCheck:
  97.             UDialogUtils::ToggleCheckBox( fDialog, item );
  98.             break;
  99.             
  100.     }
  101. }
  102.